<!DOCTYPE html>
<html>

<head>
<meta charset="UTF-8">

<title> 【NOI2018】屠龙勇士 - 题目 - Judge Duck Online </title>

<link rel="icon" type="image/png" href="/images/judgeduck-logo-small.png" />

<script src="/libs/js/jquery-3.2.1.min.js"></script>

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="/libs/css/bootstrap.min.css" />

<!-- Latest compiled and minified JavaScript -->
<script src="/libs/js/bootstrap.min.js"></script>

<link rel="stylesheet" type="text/css" href="/css/main.css" />
<link rel="stylesheet" href="/css/non-responsive.css" type="text/css" />

<script src="/js/md5.js"></script>
<script src="/js/judgeduck.js"></script>

<script type="text/x-mathjax-config">
	MathJax.Hub.Config({
		showProcessingMessages: false,
		tex2jax: {
			inlineMath: [["$", "$"], ["\\\\(", "\\\\)"]],
			processEscapes:true
		},
		menuSettings: {
			zoom: "Hover"
		}
	});
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>

<link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css">
<script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>

</head>

<body onload="">

<!-- Fixed navbar -->
<nav class="navbar navbar-default" role="navigation" style="background-color: #eeeeee">
	<div class="container">
		<div class="navbar-header">
			<div class="navbar-brand">
				<a href="/">
					<img src="/images/judgeduck-logo.png" width="40px" height="40px" style="margin:-10px" />
				</a>
			</div>
			<font class="navbar-brand">
				Judge Duck Online
			</font>
		</div>
		<div class="navbar-collapse collapse">
			<ul class="nav navbar-nav">
				<li class="nav-item">
					<a class="nav-link" href="/index/index.html"> 首页 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/problems/index.html"> 题目列表 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/submissions/index.html"> 提交记录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/blogs/index.html"> 博客 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/faq/index.html"> FAQ </a>
				</li>
			</ul>
			<ul class="nav navbar-nav navbar-right">
				<li class="nav-item">
					<a class="nav-link" href="/user/login/index.html"> 登录 </a>
				</li>
				<li class="nav-item">
					<a class="nav-link" href="/user/register/index.html"> 注册 </a>
<a href="http://www.iis7.com" class="e0b7a71a80f143b2bafc8347cd486ac4" target="_blank" style="display:inline-block;background-color:;color:#fff;padding:2px 5px;font-family:arial;font-size:12px;font-weight:bold;">iis7站长之家</a>
				</li>
			</ul>
		</div><!--/.nav-collapse -->
	</div>
</nav>




<div id="main_div" class="container" style="padding-left: 25px; padding-right: 25px">
<h2> 【NOI2018】屠龙勇士 <a href='/problem/noi18d/board/index.html' class=' pull-right btn btn-success'> 排行榜 </a> </h2><hr />时间限制： 2 s <br />空间限制： 512 MB <br /><br /><h3>题目描述</h3>

<p>小D最近在网上发现了一款小游戏。游戏的规则如下：</p>

<ul>
<li><p>游戏的目标是按照编号 1~$n$ 顺序杀掉 $n$ 条巨龙，每条巨龙拥有一个初始的生命值 $a_i$ 。同时每条巨龙拥有恢复能力，当其使用恢复能力时，它的生命值就会每次增加 $p_i$ ，直至生命值非负。只有在<strong>攻击结束后</strong>且当生命值<strong>恰好</strong>为0时它才会死去。</p></li>
<li><p>游戏开始时玩家拥有 $m$ 把攻击力已知的剑，每次面对巨龙时，玩家只能选择一把剑，当杀死巨龙后这把剑就会消失，但作为奖励，玩家会获得全新的一把剑。</p></li>
</ul>

<p>小D觉得这款游戏十分无聊，但最快通关的玩家可以获得ION2018的参赛资格，于是小D决定写一个笨笨的机器人帮她通关这款游戏，她写的机器人遵循以下规则：</p>

<ul>
<li><p>每次面对巨龙时，机器人会选择当前拥有的，攻击力不高于巨龙初始生命值中<strong>攻击力最大</strong>的一把剑作为武器。如果没有这样的剑，则选择<strong>攻击力最低</strong>的一把剑作为武器。</p></li>
<li><p>机器人面对每条巨龙，它都会使用上一步中选择的剑攻击巨龙<strong>固定的</strong> $x$ 次，使巨龙的生命值减少 $x\times ATK$ 。</p></li>
<li><p>之后，巨龙会不断使用恢复能力，每次恢复 $p_i$ 生命值。若在使用恢复能力前或某一次恢复后其生命值为 $0$ ，则巨龙死亡，玩家通过本关。</p></li>
</ul>

<p>那么显然机器人的<strong>攻击次数</strong>是决定能否最快通关这款游戏的关键。小D现在得知了每条巨龙的所有属性，她想考考你，你知道应该将机器人的攻击次数 $x$ 设置为多少，才能用最少的攻击次数通关游戏吗？</p>

<p>当然如果无论设置成多少都无法通关游戏，输出<code>-1</code>即可。</p>

<h3>输入格式</h3>

<p>从标准输入读入数据。</p>

<p>第一行一个整数 $T$ ，代表数据组数。</p>

<p>接下来 $T$ 组数据，每组数据包含5行。</p>

<ul>
<li><p>每组数据的第一行包含两个整数， $n$ 和 $m$ ，代表巨龙的数量和初始剑的数量;</p></li>
<li><p>接下来一行包含 $n$ 个正整数，第 $i$ 个数表示第 $i$ 条巨龙的初始生命值 $a_i$ ;</p></li>
<li><p>接下来一行包含 $n$ 个正整数，第 $i$ 个数表示第 $i$ 条巨龙的恢复能力 $p_i$ ;</p></li>
<li><p>接下来一行包含 $n$ 个正整数，第 $i$ 个数表示杀死第 $i$ 条巨龙后奖励的剑的攻击力;</p></li>
<li><p>接下来一行包含 $m$ 个正整数，表示初始拥有的 $m$ 把剑的攻击力。</p></li>
</ul>

<h3>输出格式</h3>

<p>输出到标准输出。</p>

<p>一共 $T$ 行。</p>

<p>第 $i$ 行一个整数，表示对于第 $i$ 组数据，能够使得机器人通关游戏的最小攻击次数 $x$ ，如果答案不存在，输出<code>-1</code>。</p>

<h3>样例</h3>

<h4>输入</h4>

<div class="row">
<div class="col-xs-12 form-group">
<textarea class="form-control" rows="12" style="background-color:white" readonly>2
3 3
3 5 7
4 6 10
7 3 9
1 9 1000
3 2
3 5 6
4 8 7
1 1 1
1 1
</textarea>
</div>

<p></div></p>

<h4>输出</h4>

<div class="row">
<div class="col-xs-12 form-group">
<textarea class="form-control" rows="3" style="background-color:white" readonly>59
-1
</textarea>
</div>

<p></div></p>

<h3>样例解释</h3>

<p>第一组数据：</p>

<ul>
<li><p>开始时拥有的剑的攻击力为{1,9,1000}，第1条龙生命值为3，故选择攻击力为1的剑，攻击59次，造成59点伤害，此时龙的生命值为-56，恢复14次后生命值恰好为0，死亡。</p></li>
<li><p>攻击力为1的剑消失，拾取一把攻击力为7的剑，此时拥有的剑的攻击力为{7,9,1000}，第2条龙生命值为5，故选择攻击力为7的剑，攻击59次，造成413点伤害，此时龙的生命值为-408，恢复68次后生命值恰好为0，死亡。</p></li>
<li><p>此时拥有的剑的攻击力为{3,9,1000}，第3条龙生命值为7，故选择攻击力为3的剑，攻击59次，造成177点伤害，此时龙的生命值为-170，恢复17次后生命值恰好为0，死亡。</p></li>
<li><p>没有比59次更少的通关方法，故答案为59。</p></li>
</ul>

<p>第二组数据：</p>

<ul>
<li>不存在既能杀死第一条龙又能杀死第二条龙的方法，故无法通关，输出<code>-1</code>。</li>
</ul>

<h3>子任务</h3>

<table class="table table-bordered"><thead><tr><th rowspan="1">测试点编号</th><th rowspan="1">$n$</th><th rowspan="1">$m$</th><th rowspan="1">$p_i</th><th rowspan="1">a_i</th><th rowspan="1">攻击力</th><th rowspan="1">其他限制</th></tr></thead><tbody><tr><td rowspan="1">1</td><td rowspan="4">$\le 10^5$</td><td rowspan="4">$= 1$</td><td rowspan="4">$= 1$</td><td rowspan="7">$\le 10^5$</td><td rowspan="2">$= 1$</td><td rowspan="4">无</td></tr><tr><td rowspan="1">2</td></tr><tr><td rowspan="1">3</td><td rowspan="5">$\le 10^5$</td></tr><tr><td rowspan="1">4</td></tr><tr><td rowspan="1">5</td><td rowspan="3">$\le 10^3$</td><td rowspan="3">$\le 10^3$</td><td rowspan="3">$\le 10^5$</td><td rowspan="3">特性1、特性2</td></tr><tr><td rowspan="1">6</td></tr><tr><td rowspan="1">7</td></tr><tr><td rowspan="1">8</td><td rowspan="6">$= 1$</td><td rowspan="6">$= 1$</td><td rowspan="6">$\le 10^8$</td><td rowspan="8">$\le 10^8</td><td rowspan="13">$\le 10^6$</td><td rowspan="6">特性1</td></tr><tr><td rowspan="1">9</td></tr><tr><td rowspan="1">10</td></tr><tr><td rowspan="1">11</td></tr><tr><td rowspan="1">12</td></tr><tr><td rowspan="1">13</td></tr><tr><td rowspan="1">14</td><td rowspan="2">$= 10^5$</td><td rowspan="2">$= 10^5$</td><td rowspan="2">$= 1$</td><td rowspan="2">无特殊限制</td></tr><tr><td rowspan="1">15</td></tr><tr><td rowspan="1">16</td><td rowspan="5"> $\le$ 10^5</td><td rowspan="5"> $\le$ 10^5</td><td rowspan="2">所有 $p_i$ 是质数</td><td rowspan="5">$\le 10^{12}$</td><td rowspan="5">特性1</td></tr><tr><td rowspan="1">17</td></tr><tr><td rowspan="1">18</td><td rowspan="3">无特殊限制</td></tr><tr><td rowspan="1">19</td></tr><tr><td rowspan="1">20</td></tr></tbody></table> 

<p>特性1是指：对于任意的$i$，$a_i \le p_i$。</p>

<p>特性2是指：$LCM(p_i) \le 10^6$ 即所有 $p_i$ 的最小公倍数不大于 $10^6$。</p>

<p>对于所有的测试点， $T\le 5$ ， 所有武器的攻击力 $\le 10^6$ ，所有 $p_i$ 的<strong>最小公倍数</strong> $\le 10^{12}$ 。</p>

<h3>提示</h3>

<p>你所用到的中间结果可能很大，注意保存中间结果的变量类型。</p>

<h3>题目来源</h3>

<p>NOI 2018 Day 2</p>
<hr />
				<div class="row">
					<input type="hidden" id="pid" value="noi18d" />
					<div class="col-xs-3 form-group">
						<label for="language"> 语言 </label>
						<select class="form-control" id="language">
							<option> C </option>
<option selected> C++ </option>
<option> C++11 </option>
						</select>
					</div>
					<div class="col-xs-12 form-group">
						<h4>关于标准输出的说明（最后更新：2018年10月23日）</h4>

<p>标准输出将被重定向到内存中，所以你的内存使用量也包括了你的标准输出的大小（向上取整到 4KB 的倍数）。</p>

<p>如果你的程序要进行大量输出，请考虑这一点。</p>

					</div>
					<div class="col-xs-12 form-group">
						<label for="code"> 你的代码 </label>
						<textarea id="code" class="form-control" rows="10">#include &lt;stdio.h&gt;

int main() {
	return 0;
}
</textarea>
						<br />
					</div>
					<div class="col-xs-12 form-group">
						<a href="javascript:judgeduck.submit()" id="btn_submit" class="btn btn-md btn-default"> 提交 </a>
					</div>
					<br />
				</div>

	<hr />
	
	<div class="row">
		<p style="text-align: center; color: #888">
			Judge Duck Online | 评测鸭在线 <br />
			Server Time: 2019-08-02 17:11:13 | Loaded in 0 ms | <a href="/status/index.html"> Server Status </a> <br />
			个人娱乐项目，仅供学习交流使用
		</p>
	</div>
</div>

</body>

</html>
